package org.szy.core.common.enums;

import cn.hutool.core.util.ObjectUtil;

/**
 * 公共状态枚举类
 *
 * @author 孙志阳
 * @date 2023-02-14
 * @since 1.0.0
 **/
public enum CommonStatusEnum {


    /**
     * 启用
     */
    ENABLE(1, "启用"),

    /**
     * 停用
     */
    DEACTIVATE(0, "停用");

    private final Integer key;
    private final String value;

    CommonStatusEnum(Integer key, String value) {
        this.key = key;
        this.value = value;
    }

    /**
     * 根据value查找
     *
     * @param key 数据值
     * @return 系统应用枚举
     */
    public static CommonStatusEnum findBykey(Object key) {
        for (CommonStatusEnum statusEnum : CommonStatusEnum.values()) {
            if (ObjectUtil.equals(statusEnum.getKey(), key)) {
                return statusEnum;
            }
        }
        throw new IllegalArgumentException("key 是无效的");
    }


    /**
     * 根据value查找
     *
     * @param value 枚举value
     * @return 系统应用枚举
     */
    public static CommonStatusEnum findByValue(Object value) {
        for (CommonStatusEnum sysAppEnum : CommonStatusEnum.values()) {
            if (ObjectUtil.equals(sysAppEnum.getValue(), value)) {
                return sysAppEnum;
            }
        }
        throw new IllegalArgumentException("value 是无效的");
    }

    public Integer getKey() {
        return key;
    }

    public String getValue() {
        return value;
    }
}
